package com.inesv.api.utils;

import java.math.BigInteger;

/**
 * create by liukeling
 * class name HexUtil
 * 进制转换的工具类
 */
public class HexUtil {
    private HexUtil(){

    }

    /**
     * 十六进制转十进制
     * @param sixteenHex  十六进制数
     * @return  十进制数
     */
    public static String toTenHex(String sixteenHex){
        if(ValidateUtil.isNull(sixteenHex)){
            return "0";
        }
        sixteenHex = sixteenHex.indexOf("0x")==-1?sixteenHex:sixteenHex.substring(sixteenHex.indexOf("0x")+"0x".length());
        if(ValidateUtil.isNull(sixteenHex)){
            return "0";
        }
        return new BigInteger(sixteenHex,16).toString(10);
    }

    /**
     * 十进制转十六进制
     * @param tenHex  十进制数
     * @return  十六进制数  带 "0x"
     */
    public static String toSixTeenHex(String tenHex) {
        if (ValidateUtil.isNull(tenHex)) {
            return "0x0";
        }
        return "0x" + new BigInteger(tenHex, 10).toString(16);
    }
}
